<?php


namespace app\controller;


use think\facade\Cache;
use think\facade\Cookie;
use think\facade\Lang;
use think\facade\Request;
use think\facade\Session;
use think\facade\Validate;
use think\facade\View;

class Store
{
    //session
   public function session(){
//       Session::set('user','GHJ');
//       Session::set('age',20);
//       echo Session::get('user');
//       dump(Request::session());
//       dump(Request::session('age'));
//       dump(Session::all()); //获取所有session的值
       //get()参数，可以设置当不存在值的时候，设置一个默认值
//       dump(Session::get('name',''));
       //has()判断是否赋值  delete()删除  pull() 取值后删除
//       dump(Session::has('user'));
//       dump(Session::delete('age'));
//       dump(Session::pull('user'));   //不存在返回null


       //clear() 清空所有session
//       Session::clear()

       //flash()方法  设置闪存数据 只请求一次有效的情况，再请求会失效
      // Session::flash('user','Mr.lee');

       //助手函数
//       session('user','lcy');  //赋值
//       session('?user');     //判断
//       session('user',null); //清除
//       session(null); //清空
//       session('user'); //输出
   }

   public function get(){
       return Session::get('user');
   }

   //cookie
   public function cookie(){
       //set()
//       Cookie::set('user','GHJ');
      // Cookie::set('name','LCY',3600);
//       dump(Request::cookie('user'));
//       dump(Request::cookie());

       //forever()  永久保存cookie()
//       Cookie::forever('love','lcy');

       //has() 判断是否存在  get()取值  delete()删除
//        dump(Cookie::has('name'));
//        dump(Cookie::get('name'));
       //dump(Cookie::delete('name'));

       //和session一样 同样可以使用助手函数 cookie()  具体看文档好吧
   }
   //缓存
   public function redis(){
       //Cache::set('user','ghj'，3600);  //缓存设置  参数三为过期时间
       //dump(Cache::get('user'));  //获取

       //has() 判断缓存是否存在 返回布尔值
//       dump(Cache::has('user'));

       //inc() dec() 自增自减操作
//       Cache::inc('price',3);
//       dump(Cache::get('price'));


       //push() 实现缓存的数组数据追加的能力
//       Cache::set('arr',[1,2,3]);
//       dump(Cache::get('arr'));
//       Cache::push('arr',4);
//       dump(Cache::get('arr'));

       //delete() 删除指定的缓存文件
//       Cache::delete('arr');
//       dump(Cache::has('arr'));

       //pull() 想获取缓存值，然后在删除这个缓存，无数据返回null
//       dump(Cache::pull('user'));

       //remember() 如果数据不存在，则写入数据，可以依赖注入
//       dump(Cache::remember('statr_time',time()));

       //clear()
//       Cache::clear(); ///清除缓存 整个文件夹都给删了

       //tag()标签，可以将多个缓存归类到标签中，方便统一管理 比如清除
//       Cache::tag('tag')->set('lv','lcy');
//       dump(Cache::get('lv'));
//       Cache::tag('tag')->clear();
//       dump(Cache::has('user'));

       //助手函数 具体看文档好吧
   }

   //上传
    public function upload(){
       return View::fetch('upload');
    }

    //多语言
    public function lang(){

       //通过 URL 方式来切换语言  ?lang=en-us 即可  cookie会自动生成
      echo Lang::get('require_name');
      echo "<br>";
      echo lang('email_error');

      return View::fetch('lang');
    }
}